addHook("ThinkFrame", function()
    for player in players.iterate do
	 --local player = mo.player
        if not (player and player.valid) then break end -- player does not exist, don't run
        if not (player.realmo and player.realmo.valid) then break end -- player does not exist 2: revengence, don't run
		
		--if (player.pflags & PF_SPINNING and player.speed > 15*FRACUNIT)
		--or player.charability == CA_THOK and (player.pflags & PF_THOKKED and player.speed > 15*FRACUNIT) and not (player.pflags & PF_SHIELDABILITY)
		if player.mo.hasthokked == true and player.mo.state == S_PLAY_JUMP and player.mo.thoktime <= 1
		or player.mo.state == S_PLAY_JUMP
		--or player.dashmode >= 3*TICRATE
		
            local traily = P_SpawnGhostMobj(player.mo)
            traily.fuse = 5
            traily.rollangle = player.mo.rollangle
            if (traily.tracer) then
                traily.tracer.fuse = 5
            end
        end
	end
end)